package com.ruoyi.project.ledger.service;

import java.util.List;

import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.ledger.domain.LedgerManagementRegistration;
import com.ruoyi.project.ledger.domain.LedgerSafetyEducation;
import com.ruoyi.project.ledger.domain.LedgerWorker;

/**
 * 安全教育活动台账Service接口
 *
 * @author gwc
 * @date 2020-04-14
 */
public interface ILedgerSafetyEducationService
{
    /**
     * 查询安全教育活动台账
     *
     * @param id 安全教育活动台账ID
     * @return 安全教育活动台账
     */
    public LedgerSafetyEducation selectLedgerSafetyEducationById(Long id);

    /**
     * 查询安全教育活动台账列表
     *
     * @param ledgerSafetyEducation 安全教育活动台账
     * @return 安全教育活动台账集合
     */
    public List<LedgerSafetyEducation> selectLedgerSafetyEducationList(LedgerSafetyEducation ledgerSafetyEducation);

    /**
     * 新增安全教育活动台账
     *
     * @param ledgerSafetyEducation 安全教育活动台账
     * @return 结果
     */
    public int insertLedgerSafetyEducation(LedgerSafetyEducation ledgerSafetyEducation);

    /**
     * 修改安全教育活动台账
     *
     * @param ledgerSafetyEducation 安全教育活动台账
     * @return 结果
     */
    public int updateLedgerSafetyEducation(LedgerSafetyEducation ledgerSafetyEducation);

    /**
     * 批量删除安全教育活动台账
     *
     * @param ids 需要删除的安全教育活动台账ID
     * @return 结果
     */
    public int deleteLedgerSafetyEducationByIds(Long[] ids);

    /**
     * 删除安全教育活动台账信息
     *
     * @param id 安全教育活动台账ID
     * @return 结果
     */
    public int deleteLedgerSafetyEducationById(Long id);

    /**
     * 获取未参加培训人员列表
     * @param ledgerWorker
     * @return
     */
    public List<LedgerWorker> selectNoAttendWorkerList(LedgerWorker ledgerWorker);

    public List<LedgerManagementRegistration> selectAttendees(LedgerManagementRegistration managementRegistration);

    public List<LedgerManagementRegistration> selectNoAttendees(LedgerManagementRegistration managementRegistration);

    /**
     * 获取参加培训人员列表
     * @param ledgerWorker
     * @return
     */
    public List<LedgerWorker> selectAttendWorkerList(LedgerWorker ledgerWorker);

    public int addAttendWorker(LedgerSafetyEducation ledgerSafetyEducation);

    public int deleteAttendWorker(Long id);

    /**
     * 导出安全教育活动台账信息详情
     * @param id
     * @return
     */
    public AjaxResult exportDetail(Long id);
}
